/**
 * Orienteering Sport Diary Copyright (C) 2009 OSDiary Team
 *
 * This file is part of Orienteering Sport Diary (OSDiary).
 *
 * OSDiary is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see http://www.gnu.org/licenses/.
 */

package org.actions;

import com.opensymphony.xwork2.*;   
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.data.SportsmanProfile;
import org.util.SportsmenDAO;

/**
 *
 * @author George.Mavchun
 */
public class ProfileAction extends ActionSupport implements ModelDriven {
    private SportsmanProfile bean;
    
    public String create() {
        Map session = ActionContext.getContext().getSession();
        String pass;
        if (bean != null) {  
            pass = bean.password;
            SportsmenDAO.addSportsman(bean);
            Integer id = SportsmenDAO.readLoginParams(bean.email, pass);
            if (id != -1) {
                session.put("logined", "true");
                session.put("id", id);
                session.put("email", bean.email);
            }
        }
        session.remove("selectedPage");
        session.put("selectedPage", "showProfile");
        return SUCCESS;
    }
    
    public String show() {
        Map session = ActionContext.getContext().getSession();
        session.remove("selectedPage");
        session.put("selectedPage", "showProfile");
        return INPUT;
    }
    
    public String save() {
        Map session = ActionContext.getContext().getSession();
        if (bean != null) {  
            SportsmanProfile oldBean = SportsmenDAO.getSportsmanProfile(bean.id);
            if (null == bean.password) {
                bean.password = oldBean.password;
            }
            SportsmenDAO.modifySportsmanProfile(bean);
            session.remove("email");
            session.put("email", bean.email);
        }
        session.remove("selectedPage");
        session.put("selectedPage", "showProfile");
        return SUCCESS;
    }
    
    @Override
    public String execute() { 
        Map session = ActionContext.getContext().getSession();
        session.remove("selectedPage");
        session.put("selectedPage", "showProfile");
        return SUCCESS;
    }

    public Object getModel() {
        Map session = ActionContext.getContext().getSession();
        if (null != session.get("id")) {
            bean = SportsmenDAO.getSportsmanProfile((Integer) session.get("id"));
        }
        if (bean == null) {
            bean = new SportsmanProfile();
        }
        return bean;
    }
    
    public List getQuals() {
        List<String> list = new ArrayList<String>();
        list.add("мс");
        list.add("кмс");
        return list;
    }
    
    public List getClubs() {
        List<String> list = new ArrayList<String>();
        list.add("NWi");
        list.add("NWe");
        return list;
    }
    
    public List getSexes() {
        List<String> list = new ArrayList<String>();
        list.add(getText("h"));
        list.add(getText("d"));
        return list;        
    }
}
